OPTIONS:
LOG_LEVEL=1

CONSTANTS:
PAYOUT_01=100
PAYOUT_02= 85
PAYOUT_03= 70
PAYOUT_04= 55
PAYOUT_05= 40
PAYOUT_06= 25
PAYOUT_07= 10
PAYOUT_08=  8
PAYOUT_09=  8
PAYOUT_10=  4
PAYOUT_11=  2

PAYOUT_WITHOUT_HOLD_RATIO=34.35386927122464

SYMBOLS_REEL_1=22
SYMBOLS_REEL_2=22
SYMBOLS_REEL_3=22


VARIABLES:
S1B={0, 3 .. 11}
S2B={0, 3 .. 11}
S3B={0, 3 .. 12}


R1A={1 .. SYMBOLS_REEL_1}
R2A={1 .. SYMBOLS_REEL_2}
R3A={1 .. SYMBOLS_REEL_3}


// Normal hold with kirsebær. <------------------------
// See below
// HOLD_TYPE={2, 4 .. 6}
// All holds                  <------------------------
HOLD_TYPE={1 .. 6}

LOCAL_VARIABLES:
// Hold types
//    1 2 3
// 1: H - -
// 2: - H -
// 3: - - H
// 4: - H H
// 5: H - H
// 6: H H -
R1H=HOLD_TYPE=1 || HOLD_TYPE=5 || HOLD_TYPE=6
R2H=HOLD_TYPE=2 || HOLD_TYPE=4 || HOLD_TYPE=6
R3H=HOLD_TYPE=3 || HOLD_TYPE=4 || HOLD_TYPE=5


S1A=R1H*S1B + !R1H*((R1A=1)*3 +(R1A=2)*3 +(R1A=3)*4 +(R1A=4)*4 +(R1A=5)*4 +(R1A=6)*4 +(R1A=7)*4 +(R1A=8)*4 +(R1A=9)*4 +(R1A=10)*4 +(R1A=11)*4 +(R1A=12)*5 +(R1A=13)*5 +(R1A=14)*5 +(R1A=15)*5 +(R1A=16)*6 +(R1A=17)*7 +(R1A=18)*7 +(R1A=19)*8 +(R1A=20)*9 +(R1A=21)*10+(R1A=22)*11)
S2A=R2H*S2B + !R2H*((R2A=1)*3 +(R2A=2)*3 +(R2A=3)*3 +(R2A=4)*4 +(R2A=5)*4 +(R2A=6)*5 +(R2A=7)*5 +(R2A=8)*6 +(R2A=9)*6 +(R2A=10)*6 +(R2A=11)*6 +(R2A=12)*6 +(R2A=13)*6 +(R2A=14)*6 +(R2A=15)*6 +(R2A=16)*6 +(R2A=17)*7 +(R2A=18)*7 +(R2A=19)*8 +(R2A=20)*9 +(R2A=21)*10+(R2A=22)*11)
S3A=R3H*S3B + !R3H*((R3A=1)*3 +(R3A=2)*3 +(R3A=3)*3 +(R3A=4)*3 +(R3A=5)*3 +(R3A=6)*3 +(R3A=7)*3 +(R3A=8)*3 +(R3A=9)*3 +(R3A=10)*4 +(R3A=11)*4 +(R3A=12)*4 +(R3A=13)*4 +(R3A=14)*4 +(R3A=15)*5 +(R3A=16)*6 +(R3A=17)*7 +(R3A=18)*8 +(R3A=19)*9 +(R3A=20)*10+(R3A=21)*11+(R3A=22)*12)



// Win before
// 3 Bar
WIN_01B=S1B=11 && S2B=11 && S3B=12
// 3 Lygte
WIN_02B=S1B=10 && S2B=10 && S3B=11
// 3 Togvogn
WIN_03B=S1B= 9 && S2B= 9 && S3B=10
// 3 Slikkepind
WIN_04B=S1B= 8 && S2B= 8 && S3B= 9
// 3 Tog
WIN_05B=S1B= 7 && S2B= 7 && S3B= 8

// 2 Blomme +1 Blomme eller Bar
WIN_06B=S1B= 5 && S2B= 5 && (S3B= 6 || S3B= 12)
// 2 Klokke +1 Klokke eller Bar
WIN_07B=S1B= 6 && S2B= 6 && (S3B= 7 || S3B= 12)
// 2 Appelsin +1 Appelsin eller Bar
WIN_08B=S1B= 4 && S2B= 4 && (S3B= 5 || S3B= 12)

// 3 Kirsebær
WIN_09B=S1B= 3 && S2B= 3 && S3B= 4
// 2 Kirsebær
WIN_10B=S1B= 3 && S2B= 3 && S3B!=4
// 1 Kirsebær
WIN_11B=S1B= 3 && S2B!=3


// Win after
// 3 Bar
WIN_01A=S1A=11 && S2A=11 && S3A=12
// 3 Lygte
WIN_02A=S1A=10 && S2A=10 && S3A=11
// 3 Togvogn
WIN_03A=S1A= 9 && S2A= 9 && S3A=10
// 3 Slikkepind
WIN_04A=S1A= 8 && S2A= 8 && S3A= 9
// 3 Tog
WIN_05A=S1A= 7 && S2A= 7 && S3A= 8

// 2 Blomme +1 Blomme eller Bar
WIN_06A=S1A= 5 && S2A= 5 && (S3A= 6 || S3A= 12)
// 2 Klokke +1 Klokke eller Bar
WIN_07A=S1A= 6 && S2A= 6 && (S3A= 7 || S3A= 12)
// 2 Appelsin +1 Appelsin eller Bar
WIN_08A=S1A= 4 && S2A= 4 && (S3A= 5 || S3A= 12)

// 3 Kirsebær
WIN_09A=S1A= 3 && S2A= 3 && S3A= 4
// 2 Kirsebær
WIN_10A=S1A= 3 && S2A= 3 && S3A!=4
// 1 Kirsebær
WIN_11A=S1A= 3 && S2A!=3

WIN_TOT=WIN_01A + WIN_02A + WIN_03A + WIN_04A + WIN_05A + WIN_06A + WIN_07A + WIN_08A + WIN_09A + WIN_10A + WIN_11A

PAYOUT_TOT=WIN_01A*PAYOUT_01 + WIN_02A*PAYOUT_02 + WIN_03A*PAYOUT_03 + WIN_04A*PAYOUT_04 + WIN_05A*PAYOUT_05 + WIN_06A*PAYOUT_06 + WIN_07A*PAYOUT_07 + WIN_08A*PAYOUT_08 + WIN_09A*PAYOUT_09 + WIN_10A*PAYOUT_10 + WIN_11A*PAYOUT_11


D_O2= S1B*100*100*1000 + S2B*100*1000 + S3B*1000 + PAYOUT_TOT

D_O3= R1H*S1A*100*100 + R2H*S2A*100 + R3H*S3A



RULES:
WIN_01B + WIN_02B + WIN_03B + WIN_04B + WIN_05B + WIN_06B + WIN_07B + WIN_08B + WIN_09B + WIN_10B + WIN_11B = 0


// Normal hold with kirsebær. Uncomment for all. <------------------------
// See above
// HOLD_TYPE!=2 || S2B = 3


// Hold reel 1
!R1H || R1A=1
(R1H && S1B!=0) || (!R1H && S1B=0)
// Hold reel 2
!R2H || R2A=1
(R2H && S2B!=0) || (!R2H && S2B=0)
// Hold reel 3
!R3H || R3A=1
(R3H && S3B!=0) || (!R3H && S3B=0)


OUTPUT:
${SOLUTION_NUMBER::#} ${S1B:[0# - |1#!!!!!|3# Kirsebær |4# Appelsin |5# Blomme |6# Klokke |7# Tog |8# Slikkepind |9# Togvogn |10# Lygte |11# Bar |12#!!!!]:Reel 1 (Before)} ${S2B:[0# - |1#!!!!!|3# Kirsebær |4# Appelsin |5# Blomme |6# Klokke |7# Tog |8# Slikkepind |9# Togvogn |10# Lygte |11# Bar |12#!!!!]:Reel 2 (Before)} ${S3B:[0# - |1#!!!!!|3# Pyramide |4# Kirsebær |5# Appelsin |6# Blomme |7# Klokke |8# Tog |9# Slikkepind |10# Togvogn |11# Lygte |12# Bar |13#!!!!]:Reel 3 (Before)}  ${HOLD_TYPE::Reel held}  ${S1A:[0# - |1#!!!!!|3# Kirsebær |4# Appelsin |5# Blomme |6# Klokke |7# Tog |8# Slikkepind |9# Togvogn |10# Lygte |11# Bar |12#!!!!]:Reel 1 (After)} (${R1A:#:Po}) ${S2A:[0# - |1#!!!!!|3# Kirsebær |4# Appelsin |5# Blomme |6# Klokke |7# Tog |8# Slikkepind |9# Togvogn |10# Lygte |11# Bar |12#!!!!]:Reel 2 (After)} (${R2A:#:Po}) ${S3A:[0# - |1#!!!!!|3# Pyramide |4# Kirsebær |5# Appelsin |6# Blomme |7# Klokke |8# Tog |9# Slikkepind |10# Togvogn |11# Lygte |12# Bar |13#!!!!]:Reel 3 (After)} (${R3A:#:Po})  ${WIN_TOT:[0#Lost|1#Win]:W/L}  ${PAYOUT_TOT:#:Payout}
OUTPUT_FOOTER:

DISTRIBUTION_OUTPUT:
D_O3
.TITLE=Output for OldTrainHoldDataConverter.java
.SHOW_TOTAL_LINE=FALSE
.OUTPUT=${VALUE:\H#_:Variable}=${(SUM_IF(PAYOUT_TOT, D_O3 = VALUE) / COUNT > PAYOUT_WITHOUT_HOLD_RATIO / 100)*SUM_IF(PAYOUT_TOT, D_O3 = VALUE) / COUNT:\0.000000000000000000000000%:Payout ratio}

D_O2
.TITLE=Details table of holds
.OUTPUT=${VALUE/100/100/1000%100:[0# - |1#!!!!!|3# Kirsebær |4# Appelsin |5# Blomme |6# Klokke |7# Tog |8# Slikkepind |9# Togvogn |10# Lygte |11# Bar |12#!!!!]:Reel 1} ${VALUE/100/1000%100:[0# - |1#!!!!!|3# Kirsebær |4# Appelsin |5# Blomme |6# Klokke |7# Tog |8# Slikkepind |9# Togvogn |10# Lygte |11# Bar |12#!!!!]:Reel 2} ${VALUE/1000%100:[0# - |1#!!!!!|3# Pyramide |4# Kirsebær |5# Appelsin |6# Blomme |7# Klokke |8# Tog |9# Slikkepind |10# Togvogn |11# Lygte |12# Bar |13#!!!!]:Reel 3} ${COUNT:#:Count} ${VALUE%1000:#:Payout per count} ${COUNT*VALUE%1000:#:Total payout}    ${VALUE:(#):Value}
.SHOW_TOTAL_LINE=FALSE

D_O3
.TITLE=Total table of holds
.SHOW_TOTAL_LINE=FALSE
.OUTPUT=${VALUE/100/100%100:[0# - |1#!!!!!|3# Kirsebær |4# Appelsin |5# Blomme |6# Klokke |7# Tog |8# Slikkepind |9# Togvogn |10# Lygte |11# Bar |12#!!!!]:Reel 1} ${VALUE/100%100:[0# - |1#!!!!!|3# Kirsebær |4# Appelsin |5# Blomme |6# Klokke |7# Tog |8# Slikkepind |9# Togvogn |10# Lygte |11# Bar |12#!!!!]:Reel 2} ${VALUE%100:[0# - |1#!!!!!|3# Pyramide |4# Kirsebær |5# Appelsin |6# Blomme |7# Klokke |8# Tog |9# Slikkepind |10# Togvogn |11# Lygte |12# Bar |13#!!!!]:Reel 3} (${VALUE:#:Value}) ${COUNT:#:Count}     ${SUM_IF(WIN_TOT, D_O3 = VALUE)::Win count}   ${SUM_IF(WIN_TOT, D_O3 = VALUE) / COUNT:0.0000%:Winning percentage}  ${SUM_IF(PAYOUT_TOT, D_O3 = VALUE)::Payout}   ${SUM_IF(PAYOUT_TOT, D_O3 = VALUE) / COUNT:0.0000%:Payout percentage}   ${SUM_IF(PAYOUT_TOT, D_O3 = VALUE) / COUNT > PAYOUT_WITHOUT_HOLD_RATIO / 100:[0#Don''t hold|1#Should be held]:Hold or not hold}


